package com.bckj.freshnow.order.entity;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

/**
 * 交易订单表(TradeOrder)表实体类
 *
 * @author makejava
 * @since 2025-04-22 10:19:34
 */
@Data
@TableName("trade_order")
public class TradeOrder {

/** 主键id */
    @TableId(type = IdType.ASSIGN_ID)     
    private Long id;
    
    
/** 用户id */
    private Long userId;
    
    
/** 店铺id */
    private Long shopId;
    
    
/** 商户id */
    private Long merchantId;
    
    
/** 订单号 */
    private String orderNo;
    
    
/** 父订单号 */
    private String parentOrderNo;
    
    
/** 外部订单号 */
    private String outOrderNo;
    
    
/** 订单来源 枚举 */
    private Integer orderSource;
    
    
/** 订单类型 1 团购订单 2 补加订单 */
    private Integer orderType;
    
    
/** 订单状态 100 待付款、200 待使用、300 已完成、400 已取消、500 交易关闭、600 售后中 */
    private Integer orderStatus;
    
    
/** 支付状态 1 未支付、2 已支付 */
    private Integer payStatus;
    
    
/** 售后状态 1 未退款、2 全部退款成功、3 部分退款成功、4 退款中 */
    private Integer afterSaleStatus;
    
    
/** 核销状态 1 未核销 2 已核销 3 部分核销 */
    private Integer verificationStatus;
    
    
/** 商品总价 */
    private BigDecimal totalAmount;
    
    
/** 实付金额 */
    private BigDecimal payAmount;
    
    
/** 优惠金额 */
    private BigDecimal discountAmount;
    
    
/** 运费 */
    private BigDecimal freightAmount;
    
    
/** 支付时间 */
    private LocalDateTime payTime;
    
    
/** 核销时间 */
    private LocalDateTime verificationTime;
    
    
/** 完成时间 */
    private LocalDateTime finishTime;
    
    
/** 用户备注 */
    private String userRemark;
    
    
/** 商户备注 */
    private String merchantRemark;
    
    
/** 平台备注 */
    private String platformRemark;
    
    
/** 是否删除 */
    private Integer isDeleted;
    
    
/** 版本号 */
    @Version 
    private Integer version;
    
    
/** 更新时间 */
    private LocalDateTime updateTime;
    
    
/** 创建时间 */
    private LocalDateTime createTime;
    
    @TableField(exist = false)
    private List<TradeItem> itemList;

    /** 订单维度 */
    @TableField(exist = false)
    private List<TradeMarketingInfo> marketingInfoList;
}

